\hypertarget{classCFrequencyScrambling}{
\section{\-C\-Frequency\-Scrambling \-Class \-Reference}
\label{classCFrequencyScrambling}\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}}
}


\-Encrypts and decrypts audio samples using the \-Frequency \-Permutation algorithm.  




{\ttfamily \#include $<$frequency\-\_\-scrambling.\-h$>$}

\-Inheritance diagram for \-C\-Frequency\-Scrambling\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classCFrequencyScrambling}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCFrequencyScrambling_adaee180f0273a4faf89fc1db28506bb0}{\-C\-Frequency\-Scrambling} (\hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} io\-Stream\-Info)
\item 
virtual \hyperlink{classCFrequencyScrambling_aaa31b315df0f4bc566857f299c30399a}{$\sim$\-C\-Frequency\-Scrambling} ()
\item 
virtual int \hyperlink{classCFrequencyScrambling_a7cd3434ecb1b1a4a3033c84f2ca0968e}{encrypt} (double $\ast$p\-Data, unsigned int p\-Count)
\item 
virtual int \hyperlink{classCFrequencyScrambling_a833eb843ff0de97a801f7f12a5807f60}{decrypt} (double $\ast$p\-Data, unsigned int p\-Count)
\end{DoxyCompactItemize}
\subsection*{\-Protected \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
virtual int \hyperlink{classCFrequencyScrambling_a5b7467e7a2d40a1643186b7066c1fdb9}{change\-Settings} ()
\item 
virtual unsigned int \hyperlink{classCFrequencyScrambling_ad117dc8d000544f06161c83d39e96aae}{get\-Samples\-Needed} ()
\item 
unsigned int \hyperlink{classCFrequencyScrambling_adad5aa7d3855c27ae5e6de65de00bdcc}{get\-Permutation\-Vector} (unsigned int $\ast$p\-Vector, unsigned int p\-Count, unsigned int p\-Algorithm, unsigned int p\-Min, unsigned int p\-Max)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{classCFrequencyScrambling_a3bae8018b5168d1fb97dea442dae7edd}{dencrypt} (double $\ast$p\-Data, unsigned int p\-Count, bool b\-Encrypt)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
unsigned int \hyperlink{classCFrequencyScrambling_aaff3591a862dd61ba4334280bbea9892}{m\-Permutation\-Mode}
\begin{DoxyCompactList}\small\item\em \-The used permutatino mode like \-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S. \end{DoxyCompactList}\item 
unsigned int \hyperlink{classCFrequencyScrambling_a370eb8dbdeee900d84ac0242b2446dc8}{m\-Encryption\-Mode}
\begin{DoxyCompactList}\small\item\em \-The used encryption mode like \-F\-F\-T. \end{DoxyCompactList}\item 
unsigned int \hyperlink{classCFrequencyScrambling_ab19eb033f2a4f75994afa0e4a4c9ae0e}{m\-Samples\-Needed}
\begin{DoxyCompactList}\small\item\em \-Defines how many \-Samples are needed at en-\//decryption. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCFrequencyScrambling_a47c6e1f6437bce45fff18bda1d9eb652}{s\-Ini\-Section\-Name}
\item 
static const int \hyperlink{classCFrequencyScrambling_a4fe5c4e10a1a091aff8106c57d41a63b}{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L} = 0
\begin{DoxyCompactList}\small\item\em \-Permutation has no effect. \-Only for testing. \end{DoxyCompactList}\item 
static const int \hyperlink{classCFrequencyScrambling_a2b2e7e8452fbfedd392254cb763da2bc}{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E} = 1
\begin{DoxyCompactList}\small\item\em \-Frequencies become inversed. \end{DoxyCompactList}\item 
static const int \hyperlink{classCFrequencyScrambling_a646bcfc2cf645d087ab27b3b8e591017}{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S} = 2
\begin{DoxyCompactList}\small\item\em \-A\-E\-S is used for the permutation. \end{DoxyCompactList}\item 
static const int \hyperlink{classCFrequencyScrambling_a0c0c9486bcc82cf31240e81b9ca1bfc6}{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D} = 3
\begin{DoxyCompactList}\small\item\em \-Like \-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S but it is done in blocks. \end{DoxyCompactList}\item 
static const int \hyperlink{classCFrequencyScrambling_ad35e7c68a57aee36d2ae24aac6f8524d}{s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T} = 1
\begin{DoxyCompactList}\small\item\em \-F\-F\-T will be used, for future use. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
\-Encrypts and decrypts audio samples using the \-Frequency \-Permutation algorithm. 

\begin{DoxyAuthor}{\-Author}
\-Bernhard \-Schildendorfer
\end{DoxyAuthor}
\-The audio signal is transformed into its frequency components which are afterwards randomly permuted using a cryptographic key. \-The member variable m\-Samples\-Needed is very important, because it tells the crypto\-Engine how many samples it has to deliver to the encryption and decryption method. 

\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCFrequencyScrambling_adaee180f0273a4faf89fc1db28506bb0}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}}
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{\-C\-Frequency\-Scrambling}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Frequency\-Scrambling\-::\-C\-Frequency\-Scrambling (
\begin{DoxyParamCaption}
\item[{{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info}}]{io\-Stream\-Info}
\end{DoxyParamCaption}
)}}
\label{classCFrequencyScrambling_adaee180f0273a4faf89fc1db28506bb0}
\hypertarget{classCFrequencyScrambling_aaa31b315df0f4bc566857f299c30399a}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!$\sim$\-C\-Frequency\-Scrambling@{$\sim$\-C\-Frequency\-Scrambling}}
\index{$\sim$\-C\-Frequency\-Scrambling@{$\sim$\-C\-Frequency\-Scrambling}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{$\sim$\-C\-Frequency\-Scrambling}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Frequency\-Scrambling\-::$\sim$\-C\-Frequency\-Scrambling (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCFrequencyScrambling_aaa31b315df0f4bc566857f299c30399a}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCFrequencyScrambling_a5b7467e7a2d40a1643186b7066c1fdb9}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!change\-Settings@{change\-Settings}}
\index{change\-Settings@{change\-Settings}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{change\-Settings}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Frequency\-Scrambling\-::change\-Settings (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classCFrequencyScrambling_a5b7467e7a2d40a1643186b7066c1fdb9}
called by the protocol engine upon settings change (e.\-g. change of embedding parameters) calls set\-Properties and init\-Crypto if this method gets overwritten, the subclass should call set\-Properties and init\-Crypto 

\-Reimplemented from \hyperlink{classCCryptoEngine_ae509c020577b0be6b45f63a78304314f}{\-C\-Crypto\-Engine}.

\hypertarget{classCFrequencyScrambling_a833eb843ff0de97a801f7f12a5807f60}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!decrypt@{decrypt}}
\index{decrypt@{decrypt}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{decrypt}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Frequency\-Scrambling\-::decrypt (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Data, }
\item[{unsigned int}]{p\-Count}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCFrequencyScrambling_a833eb843ff0de97a801f7f12a5807f60}
\-Decrypts p\-Count bytes from data and write them back. p\-Count should never be too little data for encryption because m\-Samples\-Needed tells the crypto\-Engine to buffer that amount of data for this method


\begin{DoxyParams}{\-Parameters}
{\em data} & double array with amplitude values from -\/1.\-0 to 1.\-0 \\
\hline
{\em p\-Count} & count of audio samples to work with \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 for success, $>$0 for success and discard of samples for next call, $<$0 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classCCryptoEngine_a3405f0d5fc53cce53f35e2ee03cfb95e}{\-C\-Crypto\-Engine}.

\hypertarget{classCFrequencyScrambling_a3bae8018b5168d1fb97dea442dae7edd}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!dencrypt@{dencrypt}}
\index{dencrypt@{dencrypt}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{dencrypt}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Frequency\-Scrambling\-::dencrypt (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Data, }
\item[{unsigned int}]{p\-Count, }
\item[{bool}]{b\-Encrypt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCFrequencyScrambling_a3bae8018b5168d1fb97dea442dae7edd}
\-Called by either \hyperlink{classCFrequencyScrambling_a7cd3434ecb1b1a4a3033c84f2ca0968e}{encrypt()} or \hyperlink{classCFrequencyScrambling_a833eb843ff0de97a801f7f12a5807f60}{decrypt()}. \-Because both of these methods do nearly the same, they are summarized in \hyperlink{classCFrequencyScrambling_a3bae8018b5168d1fb97dea442dae7edd}{dencrypt()}.


\begin{DoxyParams}{\-Parameters}
{\em data} & double array with amplitude values from 0 to 1 \\
\hline
{\em p\-Count} & count of audio samples to work with \\
\hline
{\em b\-Encrypt} & \-Indicates weither it should be encrypted or decrypted. true=encryption, false=decryption \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
depends on b\-Encrypt, see \hyperlink{classCFrequencyScrambling_a7cd3434ecb1b1a4a3033c84f2ca0968e}{encrypt()} and \hyperlink{classCFrequencyScrambling_a833eb843ff0de97a801f7f12a5807f60}{decrypt()} 
\end{DoxyReturn}
\hypertarget{classCFrequencyScrambling_a7cd3434ecb1b1a4a3033c84f2ca0968e}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!encrypt@{encrypt}}
\index{encrypt@{encrypt}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{encrypt}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Frequency\-Scrambling\-::encrypt (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Data, }
\item[{unsigned int}]{p\-Count}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCFrequencyScrambling_a7cd3434ecb1b1a4a3033c84f2ca0968e}
\-Encrypts p\-Count bytes from data and write them back. p\-Count should never be too less data for encryption because m\-Samples\-Needed tells the crypto\-Engine to buffer that amount of data for this method


\begin{DoxyParams}{\-Parameters}
{\em data} & double array with amplitude values from -\/1.\-0 to 1.\-0 \\
\hline
{\em p\-Count} & count of audio samples to work with \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 for success, $>$0 for success and discard of samples for next call, $<$0 for a$<$n error 
\end{DoxyReturn}


\-Implements \hyperlink{classCCryptoEngine_a19175d4e3c5177453e1b7af2bb956bb8}{\-C\-Crypto\-Engine}.

\hypertarget{classCFrequencyScrambling_adad5aa7d3855c27ae5e6de65de00bdcc}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!get\-Permutation\-Vector@{get\-Permutation\-Vector}}
\index{get\-Permutation\-Vector@{get\-Permutation\-Vector}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{get\-Permutation\-Vector}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int \-C\-Frequency\-Scrambling\-::get\-Permutation\-Vector (
\begin{DoxyParamCaption}
\item[{unsigned int $\ast$}]{p\-Vector, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Algorithm, }
\item[{unsigned int}]{p\-Min, }
\item[{unsigned int}]{p\-Max}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected\mbox{]}}}}
\label{classCFrequencyScrambling_adad5aa7d3855c27ae5e6de65de00bdcc}
\-Calculates the permutation vector needed for both encryption and decryption. \-The vector contains a unique numbers of 0 to p\-Count in \-Random order.


\begin{DoxyParams}{\-Parameters}
{\em p\-Vector} & integer array of size p\-Count where the permutation vector should be stored \\
\hline
{\em p\-Count} & size of p\-Vector \\
\hline
{\em p\-Algorithm} & \-Used algorithm for the calculation. \-The algorithm can have the values of the static variables s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-$\ast$ \\
\hline
{\em p\-Min} & \-Indexes below this one are not permuted \\
\hline
{\em p\-Max} & \-Indexes above this one are not permuted \\
\hline
\end{DoxyParams}
\hypertarget{classCFrequencyScrambling_ad117dc8d000544f06161c83d39e96aae}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!get\-Samples\-Needed@{get\-Samples\-Needed}}
\index{get\-Samples\-Needed@{get\-Samples\-Needed}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{get\-Samples\-Needed}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int \-C\-Frequency\-Scrambling\-::get\-Samples\-Needed (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classCFrequencyScrambling_ad117dc8d000544f06161c83d39e96aae}
\-Indicates the amount of \-Samples which are needed for encryption and decryption. \-This amount of samples will be buffered in crypto\-Engine. \-Exactly that many samples will be passed to the \hyperlink{classCFrequencyScrambling_a7cd3434ecb1b1a4a3033c84f2ca0968e}{encrypt()} and \hyperlink{classCFrequencyScrambling_a833eb843ff0de97a801f7f12a5807f60}{decrypt()} method. \-If the sub-\/class want's a different size of samples it can override this method and return the wanted size.\-Per default the \-F\-F\-T \-Framesize will be returned.

\begin{DoxyReturn}{\-Returns}
sample count which are needed for encryption and decryption 
\end{DoxyReturn}


\-Reimplemented from \hyperlink{classCCryptoEngine_ab83ba5cc5cd5049b9c0c7581b87eca52}{\-C\-Crypto\-Engine}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCFrequencyScrambling_a370eb8dbdeee900d84ac0242b2446dc8}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!m\-Encryption\-Mode@{m\-Encryption\-Mode}}
\index{m\-Encryption\-Mode@{m\-Encryption\-Mode}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{m\-Encryption\-Mode}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf \-C\-Frequency\-Scrambling\-::m\-Encryption\-Mode}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCFrequencyScrambling_a370eb8dbdeee900d84ac0242b2446dc8}


\-The used encryption mode like \-F\-F\-T. 

\hypertarget{classCFrequencyScrambling_aaff3591a862dd61ba4334280bbea9892}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!m\-Permutation\-Mode@{m\-Permutation\-Mode}}
\index{m\-Permutation\-Mode@{m\-Permutation\-Mode}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{m\-Permutation\-Mode}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf \-C\-Frequency\-Scrambling\-::m\-Permutation\-Mode}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCFrequencyScrambling_aaff3591a862dd61ba4334280bbea9892}


\-The used permutatino mode like \-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S. 

\hypertarget{classCFrequencyScrambling_ab19eb033f2a4f75994afa0e4a4c9ae0e}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!m\-Samples\-Needed@{m\-Samples\-Needed}}
\index{m\-Samples\-Needed@{m\-Samples\-Needed}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{m\-Samples\-Needed}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf \-C\-Frequency\-Scrambling\-::m\-Samples\-Needed}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCFrequencyScrambling_ab19eb033f2a4f75994afa0e4a4c9ae0e}


\-Defines how many \-Samples are needed at en-\//decryption. 

\hypertarget{classCFrequencyScrambling_ad35e7c68a57aee36d2ae24aac6f8524d}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T@{s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T}}
\index{s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T@{s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T}]{\setlength{\rightskip}{0pt plus 5cm}const int {\bf \-C\-Frequency\-Scrambling\-::s\-E\-N\-C\-R\-Y\-P\-T\-I\-O\-N\-\_\-\-M\-O\-D\-E\-\_\-\-F\-F\-T} = 1\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCFrequencyScrambling_ad35e7c68a57aee36d2ae24aac6f8524d}


\-F\-F\-T will be used, for future use. 

\hypertarget{classCFrequencyScrambling_a47c6e1f6437bce45fff18bda1d9eb652}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}}
\index{s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{s\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-Frequency\-Scrambling\-::s\-Ini\-Section\-Name}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCFrequencyScrambling_a47c6e1f6437bce45fff18bda1d9eb652}


\-Reimplemented from \hyperlink{classCCryptoEngine_a771dc5672c3690791e03d9492f4f2400}{\-C\-Crypto\-Engine}.

\hypertarget{classCFrequencyScrambling_a4fe5c4e10a1a091aff8106c57d41a63b}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L}}
\index{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L}]{\setlength{\rightskip}{0pt plus 5cm}const int {\bf \-C\-Frequency\-Scrambling\-::s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-N\-U\-L\-L} = 0\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCFrequencyScrambling_a4fe5c4e10a1a091aff8106c57d41a63b}


\-Permutation has no effect. \-Only for testing. 

\hypertarget{classCFrequencyScrambling_a2b2e7e8452fbfedd392254cb763da2bc}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E}}
\index{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E}]{\setlength{\rightskip}{0pt plus 5cm}const int {\bf \-C\-Frequency\-Scrambling\-::s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-R\-E\-V\-E\-R\-S\-E} = 1\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCFrequencyScrambling_a2b2e7e8452fbfedd392254cb763da2bc}


\-Frequencies become inversed. 

\hypertarget{classCFrequencyScrambling_a646bcfc2cf645d087ab27b3b8e591017}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S}}
\index{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}const int {\bf \-C\-Frequency\-Scrambling\-::s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S} = 2\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCFrequencyScrambling_a646bcfc2cf645d087ab27b3b8e591017}


\-A\-E\-S is used for the permutation. 

\hypertarget{classCFrequencyScrambling_a0c0c9486bcc82cf31240e81b9ca1bfc6}{
\index{\-C\-Frequency\-Scrambling@{\-C\-Frequency\-Scrambling}!s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D}}
\index{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D@{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D}!CFrequencyScrambling@{\-C\-Frequency\-Scrambling}}
\subsubsection[{s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D}]{\setlength{\rightskip}{0pt plus 5cm}const int {\bf \-C\-Frequency\-Scrambling\-::s\-P\-E\-R\-M\-U\-T\-A\-T\-I\-O\-N\-\_\-\-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S\-\_\-\-B\-L\-O\-C\-K\-E\-D} = 3\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCFrequencyScrambling_a0c0c9486bcc82cf31240e81b9ca1bfc6}


\-Like \-S\-W\-A\-P\-P\-I\-N\-G\-\_\-\-A\-E\-S but it is done in blocks. 



\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{frequency__scrambling_8h}{frequency\-\_\-scrambling.\-h}\item 
\hyperlink{frequency__scrambling_8cxx}{frequency\-\_\-scrambling.\-cxx}\end{DoxyCompactItemize}
